package com.lsy.util;

import java.util.Random;

/**
 * 项目名：springboot02
 * 包名：com.lsy.util
 * 类名：convertToNumericString
 * 描述：
 * 作者：柳胜酉
 * 开始时间：2023/6/25
 * 完成时间：
 * 版本：1.0
 */
public class Method {
    /**
     * 非纯数字字符串转纯数字字符串
     *
     * @param input 非纯数字字符串
     * @return 纯数字字符串
     */
    public static String convertToNumericString(String input) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (c >= '0' && c <= '9') {
                sb.append(c);
            } else if (c >= 'A' && c <= 'F') {
                sb.append(c - 'A' + 10);
            } else if (c >= 'a' && c <= 'f') {
                sb.append(c - 'a' + 10);
            }
        }
        return sb.toString();
    }

    /**
     * 传入一个纯数字字符串，和保留几位。
     * 工具类随机从字符串中取出要保留的位数个字符组成新的字符串并返回。
     * 例如传入：“1565995996233978484”和“6” 。返回结果：“148953”
     *
     * @param input 纯数字字符串
     * @param keep  保留几位
     * @return 新的字符串
     */
    public static String getRandomNumericString(String input, int keep) {
        if (keep <= 0 || input.length() <= keep) {
            return input;
        }
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < keep; i++) {
            int index = random.nextInt(input.length());
            sb.append(input.charAt(index));
        }
        return sb.toString();
    }

}
